//
//  JMMainTabbar.swift
//  sinaWeibo
//
//  Created by Yahua on 15/12/15.
//  Copyright © 2015年 itcast. All rights reserved.
//

//自定义tababr的控件
//调用  override func layoutSubviews() 方法   控件布置在父类时调用的方法  一般用来计算计算控件的大小 frame
// 中间加号要自定义button


//根据需求  在用户没有登录的时候要有一个接引页  所以我们创建一个一个吸引页  JMVistorView  因为还是在当前的控制器的一个view   不需要另外创建新的组


import UIKit

class JMMainTabbar: UITabBar
{
    //有五个控件
   private let count = 5
  
    //layoutSubviews  是在控件不止在父类时调用的方法 一般用来计算计算控件的大小 frame
    override func layoutSubviews()
    {
        //一定要记住电泳父类的方法
        super.layoutSubviews()
        
        //计算tabbarButton的宽度
        let width = self.bounds.width / CGFloat(count)
        
        //最左边的button的frame
        let frame = CGRectMake(0, 0, width, self.bounds.height)
        
        
        //---------------------------------------------遍历所有的子控件
        var index = 0
        
        for view in self.subviews
        {
            // 设置 UITabBarButton 的frame
            // UITabBarButton 继承UIContorl
            // is: 判断类型
            if view is UIControl && !(view is UIButton)
            {
                // 在这个方法里面只想给 UITabBarButton 设置frame,需要过滤掉 composeButton 按钮
                // 重新设置frame
                // CGRectOffset:  CGRect偏移

                view.frame = CGRectOffset(frame, CGFloat(index) * width, 0)
                
                index += index == 1 ? 2 : 1
        
            }
            
        }
        
        
        
        //设置加号按钮上去
        composeButton.frame = CGRectOffset(frame, 2.0 * width, 0)
        
        
        
        
    }
    
    
    
    
    //自定义按钮
    lazy var composeButton : UIButton = {
        //创建一个按钮
        let button = UIButton()
        
        //设置button的背景图片
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Highlighted)
        
        //设置按钮的图片
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Highlighted)
        
        //添加到父控件
        self.addSubview(button)
        
        //返回按钮
        return button
        
    }()
    
    
    
    

}
